//package work.rightAnswer;
//
//class Solution_dfs_130 {
//    public void solve(char[][] board) {
//
//        //从边界入手dfs遍历，遍历到全设为'#'
//        for (int i = 0; i < board.length; i++) {
//            for (int j = 0; j < board[0].length; j++) {
//                if((i==0||j==0||i==board.length-1||j==board[0].length-1)&&board[i][j]=='O'){
//                    dfs(board,i,j);
//                }
//            }
//        }
//
//        //再次遍历，将‘#’设为'O'，’O‘设为'X'
//        for (int i = 0; i < board.length; i++) {
//            for (int j = 0; j < board[0].length; j++) {
//                if(board[i][j]=='O'){
//                    board[i][j] = 'X';
//                }else if(board[i][j]=='#'){
//                    board[i][j] = 'O';
//                }
//            }
//        }
//
//
//    }
//
//    private void dfs(char[][] board, int i, int j) {
//        //如果为边界或者'#''X'，直接返回
//        if(i<0||j<0||i>=board.length||j>= board[0].length||board[i][j]=='#'||board[i][j]=='X'){
//            return;
//        }
//
//        //中，将当前元素设为'#'
//        board[i][j] = '#';
//        dfs(board,i-1,j);
//        dfs(board,i+1,j);
//        dfs(board,i,j-1);
//        dfs(board,i,j+1);
//    }
//}